<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>
        /*
            Promise.all() 批量获取数据
        */

        // const p1 = new Promise((resolve, reject) => {
        //     setTimeout(() => {
        //         // resolve('p1')
        //         reject('错误')
        //     }, 1000)
        // })
        
        // const p2 = new Promise((resolve, reject) => {
        //     setTimeout(() => {
        //         resolve('p2')
        //     }, 1000)
        // })

        // Promise.all([p1,p2]).then(result=>{
        //     console.log(result) // 输出: [p1,p2]
        // }).catch(err=>{
        //     console.log(err) // 输出: 错误
        // })


        //需要注意的是，如果其中一个promise 处理了错误，那么Promise.all() 的catch将不会执行。 并且结果是其中有一个是undefined ,(.then() 和 .catch()都会返回一个promise)
        const p1 = new Promise((resolve, reject) => {
            setTimeout(() => {
                reject('错误')
            }, 1000)
        }).catch(err=>{
            console.log(err) // 输出: 错误
        })
        setTimeout(()=>{
            console.log(p1) // Promise {<fulfilled>: undefined}
        },2000)
        
        const p2 = new Promise((resolve, reject) => {
            setTimeout(() => {
                resolve('p2')
            }, 1000)
        })

        Promise.all([p1,p2]).then(result=>{
            console.log(result) // 输出: [undefined,p2]
        })


        

    </script>
</body>

</html>